1. Field
Embodiments of the invention relate to memories. In particular, embodiments of the invention relate to management of only one time programmable (OTP) memories to make them appear multiple times programmable (MTP).
2. Background Information
FIG. 1 is a block diagram of a prior art device having only one time programmable (OTP) non-volatile memory (NVM) cells 106. The device includes a circuit 101 and a NVM 104. By way of example, the circuit and NVM may be disposed on a wafer, die, or other integrated circuit. The NVM has the OTP NVM cells 106. In the illustrated example, the NVM memory has eight cells labeled OTP1 through OTP8, although fewer or more may optionally be used. The OTP NVM cells are respectively electrically coupled with sockets or another interface 102 of the circuit through lines or other conductive paths 105. The circuit may store or program data into each of the OTP NVM cells. The circuit may also read the data from each of the OTP NVM cells.
One potential advantage of the OTP NVM cells is that they may generally be made relatively small. However, the OTP NVM cells are not re-programmable. In other words, only one set of data may be stored in an OTP NVM cell.
FIG. 2 is a block diagram of a prior art device having multiple time programmable (MTP) non-volatile memory (NVM) cells 208. As before, the device includes a circuit 201 and a NVM 204. The NVM has the MTP NVM cells 208. In the illustrated example, the NVM memory has two MTP NVM cells labeled MTP1 and MTP2, although fewer or more may optionally be used. The MTP NVM cells are respectively electrically coupled with an interface 202 of the circuit through conductive paths 205. The circuit may program data into each of the MTP NVM cells, and may read the data from each of the MTP NVM cells.
One potential advantage of the MTP NVM cells is that they are re-programmable. They could even each be reprogrammed thousands of times or more. In other words, data may be stored over data previously stored in the MTP NVM cells. However, one potential disadvantage of the MTP NVM cells is that they generally tend to be significantly larger than the OTP NVM cells of FIG. 1. By way of example, they could even be around an order of magnitude larger. This added size tends to be undesirable for certain small miniature electronic devices, and in certain other situations. In addition, the larger size of the MTP cells relative to the OTP cells may also provide an attendant increase in manufacturing cost.
In certain applications, it may be desirable to provide a NVM that is smaller than that which would be possible using MTP NVM cells. Likewise, in certain applications, it may be desirable to provide a certain amount of re-programmability, although it is not always necessary for all of the cells to be capable of being re-programmed almost indefinitely (e.g., many thousands of times each). In other words, in certain implementations, it may be desirable to provide a level of re-programmability at a level that is somewhere between OTP and fully MTP, in exchange for a reduction in the size of the NVM from what would be possible using MTP NVM cells.
FIGS. 3A-3B are block diagrams illustrating a prior art approach for providing the appearance of re-programmability in a device having only one time programmable (OTP) non-volatile memory (NVM) cells. FIGS. 3A-3B show a device including a circuit 301 and a NVM 304. The NVM has OTP NVM cells 306. In the illustrated example, the NVM memory has eight cells labeled OTP1 through OTP8, although fewer or more may optionally be used. The OTP NVM cells are divided into fully redundant and/or duplicative banks. In particular, OTP1 through OTP4 are in a first bank. OTP5 through OTP8 are in a second bank.
As shown in FIG. 3A, the device has a set of initially programmed OTP NVM cells (the first bank of OTP1 through OTP4) and a fully redundant and/or duplicative un-programmed set of OTP NVM cells (the second bank of OTP5 through OTP8). As shown in FIG. 3B, to provide the appearance of re-programmability the entire set of initially programmed OTP NVM cells (the first bank of OTP1 through OTP4) are swapped out in favor of programming the initially un-programmed fully redundant and/or duplicative set of OTP NVM cells (the second bank of OTP5 through OTP8). By way of example, a shot counter may be used to select either the first or second bank. Lines 305 coupling the cells with the interface 302 of the circuit may be swapped.
This approach takes advantage of the relatively small size of the OTP NVM cells. However, using this approach, to reprogram the data in even one OTP NVM, all of the OTP NVM cells in an entire bank will be reprogrammed. The illustration shows only two-times re-programmability. However, to achieve N-times re-programmability, N-times the number of OTP NVM banks will be provided, where N is an integer greater than 1. As the number N increases, this tends to increase the size of the NVM significantly.
Additionally, in various different applications, only a portion of the data in the cells of a memory bank may change. As a result, swapping out an entire memory bank to replace only the data in the portion of the cells uses an unnecessarily large amount of memory.